实验目的
1、理解各种内部排序方法的基本思想
2、熟悉各种内部排序方法的算法实现
3、熟悉各种查找方法的算法实现
实验内容
问题描述:给定一数组,先采用某种方法对其进行排序,在选择某种查找方法在有序表中插入一个新元素,并保持表的有序性。
要求:
1、数组中的关键字为整型。
2、 排序方法选取:直接插入排序;希尔排序;起泡排序;快速排序;简单选择排序;堆排序等。
3、查找方法选取:顺序查找、折半查找等。
测试数据
自拟
程序采用直接插入排序及顺序查找
#include <stdio.h>
int main(){
int arr[11]={12,85,96,63,65,38,39,13,75,95};
int length=10;
int j,inputTemp,ii,jj,insert,insertIndex;
int k=0;
for(int i=1;i<length;i++){
if(arr[i]<arr[i-1]){
int temp=arr[i];
for(j=i-1;j>=0&&arr[j]>temp;j--){
arr[j+1]=arr[j];
}
arr[j+1]=temp;
}
}
printf("排序完成:") ;
for(int q=0;q<length;q++){
printf("%d ",arr[q]);
}
printf("请输入要插入的数字:");
scanf("%d",&insert);
for(ii=0;ii<length;ii++){
if(insert<arr[ii]){
for(int ss=length-1;ss>=ii;ss--){
arr[ss+1]=arr[ss];
}
break;
}
}
arr[ii]=insert;
printf("插入完成:") ;
for(int q=0;q<=length;q++){
printf("%d ",arr[q]);
}
}